/**
 * 
 */
package kr.co.insoft.core.repository.configration.connection;

import java.util.List;

import kr.co.insoft.core.model.configration.connection.ConnectionEntityModel;
import kr.co.insoft.core.model.paging.PagingModel;
import kr.co.insoft.framework.exceptions.RepositoryException;

/**
 * @author skpark
 * 
 */
public interface ConnectionRepository {

	/**
	 * Connection 목록 / pagingModel 검증
	 * 
	 * @param pagingModel
	 * @return
	 * @throws RepositoryException
	 */
	public List<ConnectionEntityModel> getLists(PagingModel pagingModel)
			throws RepositoryException;

	/**
	 * Connection 전체 카운트 / pagingModel 검증
	 * 
	 * @param pagingModel
	 * @return
	 * @throws RepositoryException
	 */
	public int getTotalCount(PagingModel pagingModel)
			throws RepositoryException;

	public ConnectionEntityModel getConnection(
			ConnectionEntityModel connectionEntityModel)
			throws RepositoryException;

	/**
	 * Connection 생성
	 * 
	 * @param connectionEntityModel
	 * @throws RepositoryException
	 */
	public void createConnection(ConnectionEntityModel connectionEntityModel)
			throws RepositoryException;

	/**
	 * Connection 삭제
	 * 
	 * @param connectionEntityModel
	 * @throws RepositoryException
	 */
	public void removeConnection(ConnectionEntityModel connectionEntityModel)
			throws RepositoryException;

	/**
	 * 사용자 및 조직의 Connection 목록
	 * 
	 * @param connectionEntityModel
	 * @return
	 */
	public List<ConnectionEntityModel> getAllLists(
			ConnectionEntityModel connectionEntityModel)
			throws RepositoryException;
}
